<?php
class NhaSanXuatModel extends AppModel{

    public $name = 'NhaSanXuatModel';
    public $useTable = 'nha_san_xuat';
    public $primaryKey = 'id_nsx';
	
	public $hasMany = array(
        'SanPhamModel' => array(
            'className' => 'SanPhamModel',
            'foreignKey' => 'id_nsx',
            'conditions' => array(
            	'SanPhamModel.trang_thai_xoa' => CHUA_XOA
			)
        )
    );
	
	public $dsThamSo = array(
		'them_moi' 	=> array('ma_nsx', 'ten_nsx', 'trang_thai', 'mo_ta_ngan'),
		'chinh_sua'	=> array('id_nsx', 'ma_nsx', 'ten_nsx', 'trang_thai', 'mo_ta_ngan'),
		'tra_cuu' 	=> array('ma_nsx', 'ten_nsx', 'trang_thai'),
		'like'		=> array('ten_nsx')
	);
	
	var $validate = array(
       'ma_nsx' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng nhập mã nhà sản xuất'
           ),
           'isUnique' => array(
               'rule' => 'isUnique',
        		'message' => 'Mã nhà sản xuất này đã tồn tại.'
           )
       ),
       'ten_nsx' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng nhập tên nhà sản xuất'
           )
       ),
       'trang_thai' => array(
           'minLength' => array(
               'rule' => array('minLength', 1),
               'required' => TRUE,
               'message' => 'Vui lòng chọn trạng thái'
           )
       )
	);
	
	public function paginateSetting($conditions = array()){
		$conditions['NhaSanXuatModel.trang_thai_xoa'] = 0;
		return array(
			'conditions' => $conditions,
			'recursive' => 1,
	        'limit' => LIMIT,
	        'order' => array(
	            'NhaSanXuatModel.id_sp' => 'asc'
	        )
	    );
	}
	
	public function layDanhSachNhaSanXuat($itemCheck = '',$typeCheck = '')
	{
		$result = $this->find('list', array(
			'conditions'=> array(
				'trang_thai_xoa' 	=> CHUA_XOA 
			),
			'fields'	=> array(
				'NhaSanXuatModel.id_nsx',
				'NhaSanXuatModel.ten_nsx'
			),
			'order'		=> array('NhaSanXuatModel.ten_nsx')
		));
        $return = array();
		$typeCheck = ( $typeCheck != '') ? $typeCheck : 'checked' ;
        foreach ($result as $key => $value) {
            $return[$key]['value'] = $value;
            if (is_array($itemCheck) && in_array($key, $itemCheck)) {
                $return[$key]['checked'] = $typeCheck . ' = "' . $typeCheck . '"';                
            } else if (!is_array($itemCheck) && $itemCheck != '' && $key == $itemCheck) {
                $return[$key]['checked'] = $typeCheck . ' = "' . $typeCheck . '"';                
            } else {
                $return[$key]['checked'] = '';
            }
        }
        return $return;
	}
	
	public function layDanhSachNhaSanXuatTheoGioiTinh($itemCheck = '',$typeCheck = '', $gioiTinh = NU)
	{
		$result = $this->SanPhamModel->find('list', array(
			'conditions'=> array(
				'SanPhamModel.gioi_tinh' 	=> $gioiTinh,
			),
			'fields'	=> array(
				'NhaSanXuatModel.id_nsx',
				'NhaSanXuatModel.ten_nsx'				
			),
			'order'		=> array('NhaSanXuatModel.ten_nsx'),
			'group'		=> array('NhaSanXuatModel.id_nsx'),
			'recursive' => 1
		));
		
        $return = array();
		$typeCheck = ( $typeCheck != '') ? $typeCheck : 'checked' ;
        foreach ($result as $key => $value) {
            $return[$key]['value'] = $value;
            if (is_array($itemCheck) && in_array($key, $itemCheck)) {
                $return[$key]['checked'] = 'selected = "selected"';                
            } else if (!is_array($itemCheck) && $itemCheck != '' && $key == $itemCheck) {
                $return[$key]['checked'] = 'selected = "selected"';                
            } else {
                $return[$key]['checked'] = '';
            }
        }
        return $return;
	}
	
	public function xoaNSX($idNSX = ''){
		$result = array();
		if ($idNSX !== '') {
			$this->id = $idNSX;
			if ($this->exists()) {
				$result = $this->save(array(
					'trang_thai_xoa' => DA_XOA
				),false);
			}
		}
		return (!empty($result)) ? true : false;
	}
	
	public function layMaSPMoi(){
		$result = $this->find('first', array(
			'fields' 		=> array('ma_nsx'),
			'recursive' 	=> -1,
			'order'			=> array('NhaSanXuatModel.ma_nsx' => 'desc')
		));
		$maNSXMoi = 'SX'.date('y').date('m');
		if (!empty($result['NhaSanXuatModel']['ma_nsx'])) {
			$maNSXCu = $result['NhaSanXuatModel']['ma_nsx'];
			$maNSXCuInt = intval(substr($maNSXCu,strlen($maNSXCu) - 4, 4));
			$maNSXMoi .= sprintf("%04d", $maNSXCuInt + 1);
		} else {
			$maNSXMoi .= sprintf("%04d", 1);
		}
		return $maNSXMoi;
	}
} 